//-------------------------------------------------------------------
//	Copyright (c) 2010-2014  Zhirnov Andrey
//	This file is part of the "UX Standard Lib" project.
//	See copyright notice in "UX_STL_Core.h".
//-------------------------------------------------------------------
/*
	Description:	List of all public macro in this (stl_core) project.
*/

#pragma once

#include "../ux_stl_core.h"

// With UX_* //
#ifndef UX_DLL_EXPORT
#	error UX_DLL_EXPORT
#endif

#ifndef UX_DLL_IMPORT
#	error UX_DLL_IMPORT
#endif

#ifndef UX_DLL_PRIVATE
#	error UX_DLL_PRIVATE
#endif

#ifndef UX_FUNCTION_NAME
#	error UX_FUNCTION_NAME
#endif

#ifndef UX_ALIGN
#	error UX_ALIGN
#endif

#ifndef UX_ALIGN_OF
#	error UX_ALIGN_OF
#endif

#ifndef UX_FORCE_INLINE
#	error UX_FORCE_INLINE
#endif

#ifndef UX_NO_INLINE
#	error UX_NO_INLINE
#endif

#ifndef UX_NOOP
#	error UX_NOOP
#endif

#ifndef UX_ASSUME
#	error UX_ASSUME
#endif

#ifndef UX_NO_VTABLE
#	error UX_NO_VTABLE
#endif

#ifndef UX_RESTRICT
#	error UX_RESTRICT
#endif

#ifndef UX_NO_ALIAS
#	error UX_NO_ALIAS
#endif

#ifndef UX_RESTRICT_PTR
#	error UX_RESTRICT_PTR
#endif

#ifndef UX_THREAD_LOCAL
#	error UX_THREAD_LOCAL
#endif

#ifndef UX_NO_RETURN
#	error UX_NO_RETURN
#endif

#ifndef UX_AUTO_SUPPERTED
#	error UX_AUTO_SUPPERTED
#endif

#ifndef UX_BREAK_POINT
#	error UX_BREAK_POINT
#endif

#ifndef UX_EXPORT
#	error UX_EXPORT
#endif

#ifndef UX_IS_UNICODE
#	error UX_IS_UNICODE
#endif

#ifndef UX_ENUM_BIT_OPERATIONS
#	error UX_ENUM_BIT_OPERATIONS
#endif

#ifndef UX_ENUM_ADD_OPERATIONS
#	error UX_ENUM_ADD_OPERATIONS
#endif

#ifndef UX_ENUM_OPERATIONS
#	error UX_ENUM_OPERATIONS
#endif


// PLATFORM_* //
#ifndef PLATFORM_NAME
#	error PLATFORM_NAME
#endif

#ifndef PLATFORM_BITS
#	error PLATFORM_BITS
#endif

#ifndef PLATFORM_BITS_NAME
#	error PLATFORM_BITS_NAME
#endif


// COMPILER_* //
#ifndef COMPILER_NAME
#	error COMPILER_NAME
#endif

#ifndef COMPILER_VERSION
#	error COMPILER_VERSION
#endif


// Other Without UX_* //
#ifndef IN	// deprecated
#	error IN
#endif

#ifndef OUT
#	error OUT
#endif

#ifndef INOUT
#	error INOUT
#endif

#ifndef ARGS
#	error ARGS
#endif

#ifndef FOR
#	error FOR
#endif

#ifndef CALLBACK
#	error CALLBACK
#endif

#ifndef DEBUG_ONLY
#	error DEBUG_ONLY
#endif

#ifndef RELEASE_ONLY
#	error RELEASE_ONLY
#endif

#ifndef MOBILE_ONLY
#	error MOBILE_ONLY
#endif

#ifndef DESCTOP_ONLY
#	error DESCTOP_ONLY
#endif

#ifndef ASSERT_EXT
#	error ASSERT_EXT
#endif

#ifndef ASSUME
#	error ASSUME
#endif

#ifndef ASSERT
#	error ASSERT
#endif

#ifndef WARNING
#	error WARNING
#endif

#ifndef STATIC_ASSERT
#	error STATIC_ASSERT
#endif

#ifndef STATIC_ASSERTE
#	error STATIC_ASSERTE
#endif

#ifndef STATIC_WARNING
#	error STATIC_WARNING
#endif

#ifndef CONSOLE_OUTPUT
#	error CONSOLE_OUTPUT
#endif

#ifndef TEMP_CODE_MARKER
#	error TEMP_CODE_MARKER
#endif

#ifndef TEMP_CODE
#	error TEMP_CODE
#endif

#ifndef TRY
#	error TRY
#endif

#ifndef THROW
#	error THROW
#endif

#ifndef CATCH
#	error CATCH
#endif

#ifndef COUNT_OF
#	error COUNT_OF
#endif

#ifndef TOSTRING
#	error TOSTRING
#endif

#ifndef RVALUE_REFERENCE_ONLY
#	error RVALUE_REFERENCE_ONLY
#endif

#ifndef LOG
#	error LOG
#endif


// shared pointer //
#ifndef SHARED_POINTER_TYPE
#	error SHARED_POINTER_TYPE
#endif

#ifndef SHARED_POINTER
#	error SHARED_POINTER
#endif


// warnings //
#ifdef UX_FAST_MATH
#	pragma message ("UX_FAST_MATH is not safe!")
#endif

